SelectionController in GraphFrame wordt nu geset.
[f432xdd.git] / java / Graph Editor / src / interfaces / GraphFrame.java
blob6b711f7752434692db5f2e41eefbfe18a35eb41b
1 package interfaces;
3 import models.*;
4 import controllers.SelectionController;
5 import controllers.actions.*;
6 import java.awt.Event;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
9 import java.awt.event.KeyEvent;
11 import javax.swing.*;
12 import javax.swing.undo.*;
15 public class GraphFrame extends JFrame {
16 private static final long serialVersionUID = -7929100929760152271L;
17 private GraphPanel panel;
18 private UndoManager undoManager;
20 private JMenuBar menubar;
21 private JMenu menuOptionFile;
22 private JMenu menuOptionEdit;
24 private JMenuItem menuOptionFileClose;
25 private JMenuItem menuOptionFileOpen;
26 private SelectionController selectionController;
27 private ActionListener onMenuFileClose;
28 private ActionListener onMenuFileOpen;
30 private JMenuItem menuOptionEditUndo;
31 private JMenuItem menuOptionEditAddNode;
32 private JMenuItem menuOptionEditAddEdge;
33 private JMenuItem menuOptionEditRemoveNode;
35 private ActionListener onMenuEditUndo;
36 private ActionListener onMenuEditAddNode;
37 private ActionListener onMenuEditAddEdge;
38 private ActionListener onMenuEditDeleteNode;
40 public GraphFrame(GraphModel model){
41 undoManager = new UndoManager();
42 this.setTitle("Graph Editor");
43 this.setSize(500, 500);
44 menubar = new JMenuBar();
47 menuOptionFile = new JMenu("File");
48 menuOptionFile.setMnemonic(KeyEvent.VK_F);
49 menuOptionEdit = new JMenu("Edit");
50 menuOptionEdit.setMnemonic(KeyEvent.VK_E);
52 menuOptionFileClose = new JMenuItem("Close program",KeyEvent.VK_C);
53 menuOptionFileClose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, Event.CTRL_MASK));
55 menuOptionFileOpen = new JMenuItem("Openen",KeyEvent.VK_O);
56 menuOptionFileOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, Event.CTRL_MASK));
58 menuOptionEditUndo = new JMenuItem("Ongedaan maken",KeyEvent.VK_Z);
59 menuOptionEditUndo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, Event.CTRL_MASK));
61 menuOptionEditAddNode = new JMenuItem("Knoop toevoegen",KeyEvent.VK_N);
62 menuOptionEditAddNode.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, Event.CTRL_MASK));
64 menuOptionEditAddEdge = new JMenuItem("Kant toevoegen",KeyEvent.VK_M);
65 menuOptionEditAddEdge.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, Event.CTRL_MASK));
67 menuOptionEditRemoveNode = new JMenuItem("Delete Node",KeyEvent.VK_D);
68 menuOptionEditRemoveNode.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,Event.SHIFT_MASK));
70 onMenuFileClose = new ActionListener(){
71 public void actionPerformed(ActionEvent arg0) {
72 System.exit(0);
75 onMenuFileOpen = new ActionListener(){
76 public void actionPerformed(ActionEvent arg0) {
77 //TODO
80 onMenuEditUndo = new ActionListener(){
81 public void actionPerformed(ActionEvent arg0) {
82 //TODO
83 undoManager.undo();
86 onMenuEditAddNode = new ActionListener(){
87 public void actionPerformed(ActionEvent arg0) {
88 GraphFrame.this.undoManager.addEdit(new AddNode(GraphFrame.this.selectionController));
91 onMenuEditAddEdge = new ActionListener(){
92 public void actionPerformed(ActionEvent arg0) {
93 //TODO
97 onMenuEditDeleteNode = new ActionListener(){
98 public void actionPerformed(ActionEvent arg0){
99 undoManager.addEdit(new DeleteNode(selectionController));
103 menuOptionFileClose.addActionListener(onMenuFileClose);
104 menuOptionEditAddNode.addActionListener(onMenuEditAddNode);
105 menuOptionEditAddEdge.addActionListener(onMenuEditAddEdge);
106 menuOptionEditUndo.addActionListener(onMenuEditUndo);
107 menuOptionFileOpen.addActionListener(onMenuFileOpen);
108 menuOptionEditRemoveNode.addActionListener(onMenuEditDeleteNode);
110 menuOptionFile.add(menuOptionFileOpen);
111 menuOptionFile.addSeparator();
112 menuOptionFile.add(menuOptionFileClose);
114 menuOptionEdit.add(menuOptionEditAddNode);
115 menuOptionEdit.add(menuOptionEditAddEdge);
116 menuOptionEdit.addSeparator();
117 menuOptionEdit.add(menuOptionEditUndo);
118 menuOptionEdit.add(menuOptionEditRemoveNode);
120 menubar.add(menuOptionFile);
121 menubar.add(menuOptionEdit);
122 setJMenuBar(menubar);
123 panel = new GraphPanel(model);
125 add(panel);
126 setVisible(true);
129 public void selectedObject(boolean selected) {
130 menuOptionEditAddEdge.setEnabled(selected);
131 menuOptionEditRemoveNode.setEnabled(selected);
133 public void setSelectionController(SelectionController s) {
134 selectionController = s;
136 public GraphPanel getPanel()
138 return panel;